Extensible markup language (XML) is a more recent of a line of several evolutions of a general markup language that was invented years ago as a common style sheet for technical reports. From this general markup language evolved hypertext markup language (HTML) that made possible the World Wide Web.
Before XML, markup languages focused on describing the layout for a page, typically on computer screens. The layout defined such things as text fonts, text location, image location, background color, etc. Web pages written in HTML can be rendered by any web browser application running on almost any kind of computer. The web page will look and function virtually identically without regard for the computing environment.
However, HTML has no way of “knowing” the meaning of the data that it displays. It is only capable of describing how the Web page will look and function and what text it will contain. While HTML knows a great deal about words, it knows nothing at all about information.
On the other hand, XML differs from those markup languages in that XML focuses on describing data, not pages. Hence, XML makes applications aware of what the application are about. XML makes Web pages intelligent. For example, a spreadsheet application written with XML can link across the Internet into other spreadsheets and into server-based applications that offer even greater power.
XML introduced the concept of metadata, i.e., data about data. In XML, each piece of data not only includes the data itself but also a description of the data, what it means. An XML database can have a list of names (data) and a tag on the data saying that the names are customer names (metadata). An XML search engine does not have to pull in all the data and analyze the data to find a list of customer names, it simply queries the metadata to find tags indicating that the names are customer names and only that data has to be retrieved.
XML data is hierarchical. In other words, there are different levels of data, some levels subordinate to others. For example, an XML document may contain a first level of data items wherein each data item is a customer name. Each first-level data item (customer name) may have several attributes (contained in fields) and/or one or more second-level, or subordinate, data items. In the example where the first-level data items are customer names, each customer name may have second-level data items that comprise customer orders. The second-level data items may, in turn, have subordinate data levels (third-level data items). In the example described, the second-level data items (customer orders) may have subordinate data items, e.g., order details, and so on.
Despite all the advantages that accompany XML, XML cannot format data. Therefore, a formatting language must still be utilized to display XML data. Providing an efficient way to display XML—or, in fact, any hierarchical data—using HTML is an important goal to assist application developers and users of XML-based applications.